package com.java.tutorials.spring.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

import java.util.ArrayList;
import java.util.List;
/**
 * File: context.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
 "http://www.springframework.org/dtd/spring-beans.dtd">
 <beans>
 <bean id="numberClass"
 class="CustomInitializationMethodNumberClass"
 init-method="initialize"/>
 </beans>
 * Created by xuzhike on 2016/3/13.
 * http://www.java2s.com/Code/Java/Spring/UseConfigurableListableBeanFactory.htm
 */
public class ConfigurableListableBeanFactoryMain {
    public static void main(String[] args) throws Exception {

        ConfigurableListableBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource(
                "context.xml"));

        CustomInitializationMethodNumberClass bean = (CustomInitializationMethodNumberClass)beanFactory.getBean("numberClass");

        System.out.println(bean.getNumbers());
    }
}

class CustomInitializationMethodNumberClass {
    private List<String> numbers = new ArrayList<String>();

    public List<String> getNumbers() {
        return this.numbers;
    }

    public void initialize() throws Exception {
        if (this.numbers.size() < 3) {
            numbers.add("one");
            numbers.add("two");
            numbers.add("three");
        }
    }
}


